Software pin entry

ABSTRACT

A card reader configured to read a smart card can be detachably connected to a mobile computing device. When the card reader is attached to the mobile device, an application installed on the mobile computing device permits the mobile device to communicate with the card reader in order to process transactions. 
     Security measures can be used on the mobile device to prevent theft of a PIN during software PIN entry of a payment transaction. The mobile device can prevent the keypad or other input interface from displaying feedback. The mobile device can also prevent passcodes from being stolen by displaying media encoded with digital rights management (DRM) and by managing the media and user inputs at a secure server. 
     A mobile device can securely communicate with a card reader for a payment transaction using asymmetric or symmetric encryption.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a non-provisional of and claims priority to U.S. Provisional Patent Application No. 61/658,828, filed on Jun. 12, 2012, the entire contents of which are hereby incorporated by reference.

TECHNICAL FIELD

This disclosure relates to mobile card processing using mobile devices.

BACKGROUND

In a conventional point-of-sale electronic credit card transaction with a smart card (also called a “chip card” or “integrated circuit card”), a cardholder's identity is confirmed by requiring the entry of a Personal Identification Number (PIN) rather than or in addition to signing a paper receipt. A user provides a card at the point-of-sale to a merchant. The card contains an embedded microchip which stores the PIN. The merchant processes the card using a card reader, e.g., the card is inserted into the reader to engage electrical contacts for the microchip. The card reader verifies the card as authentic and waits for the user to enter the PIN. The user can enter the PIN on a PIN a keypad terminal of the reader, i.e., the keypad and the reader are a single physically integrated device. After the user enters the PIN, the microchip notifies the card reader as to whether the entered PIN is correct or incorrect.

The card transaction is further authorized and captured. In the authorization stage, if the entered PIN is correct, a payment request is sent electronically from the card reader to a credit card processor. The credit card processor routes the payment request to a card network, e.g., Visa or Mastercard, which in turn routes the payment request to the card issuer, e.g., a bank. Assuming the card issuer approves the transaction, the approval is then routed back to the merchant. In the capture stage, the approved transaction is again routed from the merchant to the credit card processor, card network and card issuer, and the payment request can include a cardholder's signature, if appropriate. The capture state can trigger the financial transaction between the card issuer and the merchant, and optionally creates a receipt. There can also be other entities, e.g., the card acquirer, in the route of the transaction. Debit card transactions have a different routing, but also require insertion of the smart card into a reader.

Mobile card readers are available for magnetic stripe cards. Some mobile card readers use WiFi technology to communicate with the credit card processor via a wireless network access point. Some mobile card readers, e.g., in taxies, use cellular technology to communicate wirelessly with the credit card processor.

SUMMARY

Existing chip card readers are generally bulky and expensive. However, a card reader configured to read a smart card can be detachably connected to a mobile computing device, e.g., a smart phone, tablet computer, or the like. The PIN can be entered on a touch display of the mobile computing device. This permits the mobile device to be a common consumer device, e.g., an iPhone or iPad. When the card reader is attached to the mobile device, e.g., plugged into the audio port, an application installed on the mobile computing device permits the mobile device to communicate with the card reader in order to process transactions.

Security measures can be used on the mobile device to prevent theft of a PIN during software PIN entry of a payment transaction. Malware or other unauthorized software can take screenshots of a display of the mobile device or detect locations of user input during PIN entry. When a user inputs a PIN on the mobile device on a keypad interface, the mobile device provides user feedback, e.g., the mobile device highlights, on the keypad interface, a background of a cell that the user interfaced with. The mobile device can prevent the keypad or other input interface, e.g., a keyboard, from displaying feedback. The mobile device can also prevent passcodes from being stolen by displaying media encoded with digital rights management (DRM) and by managing the media and user inputs at a secure server.

A mobile device can securely communicate with a card reader for a payment transaction using asymmetric or symmetric encryption. The mobile device verifies a card reader's identity using a certificate installed in the card reader.

In one aspect, a method for processing payment transactions between a card, a card reader and a mobile device includes receiving batched information from the mobile device, where the batched information includes information required for a transaction, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; receiving, from the card, distinct requests for information from the batched information; and providing, to the card, the information based on the respective request, where the card generates the plurality of authentication codes based on the information.

Implementation may include one or more of the following. The batched information includes transaction details and an application selection, where the transaction details include one or more of the following: transaction amount, currency type, date, nonce, or verification results. The batched information includes a passcode from a user. The batched information is sent when the card is inserted into the card reader. The batched information is sent before the card is inserted into the card reader. Receiving the plurality of authentication codes from the card; transmitting the plurality of authentication codes to the mobile device, which sends the plurality of authentication codes to an issuing bank associated with the card; receiving a response from the issuing bank, where the response authorizes the plurality of authentication codes; and sending the response to the card.

In another aspect, a method for providing security during passcode entry on a mobile device includes displaying an interface for receiving a passcode, where the interface includes one or more objects; receiving user input on a display of the mobile device; not displaying feedback based on the user input, where the mobile device does not display feedback in one or more of the one or more objects; determining the passcode based on the user input; and submitting the passcode for authentication.

Implementation may include one or more of the following. Submitting the passcode to a card reader. The feedback takes form through one or more of the following: visual, audio, or tactile. The one or more objects include a keypad and a passcode field, and where the mobile device displays, on the passcode field, a symbol for each user entry from the user, and where the mobile device does not display, on the keypad, feedback based on the user input. The one or more objects include a keypad and a passcode field, and where the mobile device does not display feedback in the keypad or the passcode field. The feedback is not displayed in any of the one or more objects. The feedback is displayed in some of the one or more objects. Disabling an ability of the one or more objects to change visual state. The determining is based on locations of the user input on the display.

In another aspect, a method for providing security during passcode entry on a mobile device includes receiving, from a server, a media file, where content of the media file includes an interface for receiving a passcode, where the media file is encoded by digital rights management, and where locations of input values of the interface are randomly generated; displaying the media file; receiving user input on a display of the mobile device; determining locations of the user input on the display; sending the locations to the server; receiving a passcode from the server, where the passcode is based on the locations; and submitting the passcode for authentication.

Implementation may include one or more of the following. Displaying the media file prevents the mobile device from taking screenshots. The media file is an image or a movie. Submitting comprises: submitting the passcode to a card reader. The displaying further comprises: decoding the media file at a module for digital rights management; and displaying the decoded file. The input values of the interface include numbers 0-9.

In another aspect, a method for providing security during passcode entry on a mobile device includes generating a media file, where the media file is encoded with digital rights management, where content of the media file includes an interface for receiving a passcode, where locations of input values of the interface are randomly generated; sending the media file to the mobile device; receiving, from the mobile device, locations of user input on a display of the mobile device; determining a user inputted passcode based on the locations of the user input on the display and the locations of input values of the interface; and sending the user inputted passcode to the mobile device.

Implementation may include one or more of the following. The user inputted passcode is encrypted prior to sending the user inputted passcode. The media file is an image or a movie.

In another aspect, a method for securely communicating between a card reader and a mobile device includes receiving a unique identification code of the card reader; sending the unique identification code to a server; receiving a cryptographic key from the server, where the cryptographic key is associated with the unique identification code; and encrypting data using the cryptographic key; sending the data to the card reader; receiving encrypted data from the card reader; decrypting the encrypted data using the cryptographic key; processing the unencrypted data; and continuing secure communication between the card reader and the mobile device, wherein continuing secure communication includes encrypting and decrypting using the cryptographic key.

Implementation may include one or more of the following. The unique identification code is thirty two bits or sixty four bits in length. Prior to receiving the unique identification code, a card is swiped at the card reader. The data includes a passcode associated with the card. The encrypted data is an acknowledgment that the passcode is verified. The processing comprises: submitting a payment transaction to a payment processing system. Prior to the encrypting, further comprising: receiving a certificate from the card reader; sending the certificate to the server, where the server verifies a signature of the certificate; and receiving a verification of the certificate from the server. Prior to sending the unique identification code to the server, encrypting the unique identification code using a public key from the server; and where prior to decrypting the encrypted data using the cryptographic key, decrypting the encrypted data using a private key of the mobile device. The unique identification code and encrypted data are received from an audio jack of the mobile device, and where the data is sent through the audio jack. The unique identification code and encrypted data are received wirelessly from the mobile device, and where the data is sent wirelessly.

In another aspect, a method for securely communicating between a card reader and a mobile device includes sending a unique identification code to the mobile device; receiving encrypted data from the mobile device; decrypting the encrypted data using a cryptographic key; encrypting a response using the cryptographic key; sending the response to the mobile device; and continuing secure communication between the card reader and the mobile device, wherein continuing secure communication includes encrypting and decrypting transmissions using the cryptographic key.

Implementation may include one or more of the following. The unique identification code is 32 bits or 64 bits in length. Prior to sending the unique identification code, a card is swiped at the card reader. The encrypted data includes a passcode associated with the card. The response is an acknowledgment that the passcode is verified. Sending a certificate to the mobile device. The cryptographic key is embedded in the card reader during manufacturing of the card reader. The unique identification code and the response are sent from an audio jack of the mobile device, and where the encrypted data is received through the audio jack. The unique identification code and the response are sent wirelessly from the mobile device, and where the encrypted data is received wirelessly

In another aspect, a method for securely communicating between a card reader and a mobile device includes receiving a unique identification code of the card reader; generating first data to be processed by the card reader, where the first data is encrypted using a first cryptographic key; sending the unique identification code and the encrypted data to a server, where the server conducts operations that further comprise: decrypting the encrypted first data using the first cryptographic key; obtaining a second cryptographic key based on the unique identification code, where the second cryptographic key is associated with the card reader; generating a response based on the first data, where the response is encrypted using the second cryptographic key; and sending the encrypted response to the mobile device; receiving the encrypted response from the server; and sending the encrypted response to the card reader.

Implementation may include one or more of the following. The unique identification code is thirty two bits or sixty four bits in length. Prior to receiving the unique identification code, a card is swiped at the card reader. The data includes a passcode associated with the card. The encrypted data is an acknowledgment that the passcode is verified. Prior to sending the unique identification code and the encrypted data to the server, further comprising: receiving a certificate from the card reader; sending the certificate to the server, where the server verifies a signature of the certificate; and receiving a verification of the certificate from the server. Receiving second data from the card reader, where the second data is encrypted; sending the unique identification and the second data to the server, where the server conducts operations that further comprise: obtaining the second cryptographic key based on the unique identification code, where the second cryptographic key is associated with the card reader; decrypting the encrypted second data using the second cryptographic key; generating a response based on the second data, where the response is encrypted using the first cryptographic key; and sending the encrypted response to the mobile device; receiving the encrypted response from the server; decrypting the encrypted response using the first cryptographic key; and processing the response. The processing comprises: submitting a payment transaction to a payment processing system. The unique identification code is received from an audio jack of the mobile device, and where the encrypted response is sent through the audio jack. The unique identification code is received wirelessly from the mobile device, and where the encrypted response is sent wirelessly.

In another aspect, a method for securely communicating between a card reader and a mobile device, comprising: sending a unique identification code to the mobile device; receiving encrypted data from the mobile device; decrypting the encrypted data using a cryptographic key; encrypting a response using the cryptographic key; and sending the response to the mobile device.

Implementation may include one or more of the following. The unique identification code is 32 bits or 64 bits in length. Prior to sending the unique identification code, a card is swiped at the card reader. The encrypted data includes a passcode associated with the card.

The response is an acknowledgment that the passcode is verified. The unique identification code and the response are sent from an audio jack of the mobile device, and where the encrypted data is received through the audio jack. The unique identification code and the response are sent wirelessly, and where the encrypted data is received wirelessly.

In another aspect, a method for securely communicating between a card reader and a mobile device includes receiving a cryptographic key of the card reader; encrypting data using the cryptographic key; sending the data to the card reader; receiving encrypted data from the card reader; decrypting the encrypted data using the cryptographic key; and processing the unencrypted data.

Implementation may include one or more of the following. Prior to receiving the cryptographic key, a card is swiped at the card reader. The data includes a passcode associated with the card. The encrypted data is an acknowledgment that the passcode is verified. The processing comprises: submitting a payment transaction to a payment processing system. Prior to the encrypting, further comprising: receiving a certificate from the card reader; sending the certificate to the server, where the server verifies a signature of the certificate; and receiving a verification of the certificate from the server. The cryptographic key and the encrypted data are received from an audio jack of the mobile device, and where the data is sent through the audio jack. The cryptographic key and the encrypted data are received wirelessly, and where the data is sent wirelessly.

In another aspect, a method for securely communicating between a card reader and a mobile device includes sending a cryptographic key to the mobile device; receiving encrypted data from the mobile device; decrypting the encrypted data using the cryptographic key; encrypting a response using the cryptographic key; and sending the response to the mobile device.

Implementation may include one or more of the following. Prior to sending the unique identification code, a card is swiped at the card reader. The encrypted data includes a passcode associated with the card. The response is an acknowledgment that the passcode is verified. The cryptographic key and the response are sent from an audio jack of the mobile device, and where the encrypted data is received through the audio jack. The cryptographic key and the response are sent wirelessly from the mobile device, and where the encrypted data is received wirelessly.

In another aspect, a method for processing payment transactions between a card, a card reader and a mobile device includes receiving a card insertion at the card reader; sending a notification of the card insertion to the mobile device; receiving a passcode from the mobile device, where the mobile device receives the passcode based on user input on a display of the mobile device, and where the passcode is associated with the card; sending the passcode to the card, where the card determines the passcode matches an embedded passcode in the card; sending an approval for a transaction to the mobile device.

Implementation may include one or more of the following. The notification and the approval are sent over an audio jack of the mobile device, and where the passcode is received over the audio jack. The notification and the approval are sent wirelessly from the mobile device, and where the passcode is received wirelessly. The passcode is encrypted, and where prior to sending the passcode to the card, decrypting the encrypted password using a cryptographic key. The approval is encrypted using a cryptographic key.

Advantages may include one or more of the following. A card reader can communicate bi-directionally with a mobile device through an audio jack. This enables processing of a transaction that requires multiple round trips, e.g., a payment transaction that requires PIN verification. The card reader can batch requests to the phone, and vice-versa, to save power. The mobile device can prevent theft of sensitive information, e.g., passcode information, during passcode entry by limiting feedback to the user and using DRM-encoded files. The mobile device can also ensure the card reader is a verified device and securely communicate with the verified card reader to prevent fraud or theft.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of an example system for conducting a transaction using PIN entry.

FIG. 2 is a diagram of an example method for conducting a transaction using PIN entry by batching commands from a mobile device to a card reader.

FIG. 3 is a schematic illustration of an example system for providing security during PIN entry by limiting user feedback on the display of the mobile device.

FIG. 4 is an example generated user interface on a mobile device.

FIG. 5 is an example flow chart of a method for providing security during passcode entry by limiting user feedback on the display of the mobile device.

FIG. 6 is a schematic illustration of an example system for providing security during PIN entry by receiving a PIN on a randomized PIN entry interface while displaying a file encoded with digital rights management (DRM).

FIG. 7 is a diagram of an example method for providing security during PIN entry by receiving a PIN from a secure server.

FIG. 8 is an example generated user interface on a mobile device.

FIG. 9 is a schematic illustration of an example system for securely communicating between a card reader and a mobile device.

FIG. 10 is a diagram of an example method of establishing secure communications between a card reader and a mobile device using asymmetric encryption.

FIG. 11 is a diagram of an example method 1100 of establishing secure communications between a card reader and a mobile device using symmetric encryption.

Like reference numbers and designations in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1 is a schematic illustration of an example system 100 for conducting a transaction using PIN entry. In some implementations, the system 100 is capable of processing a payment transaction between a mobile computing device 102 and a card reader 110. The mobile computing device 102 can be a smart phone, tablet computer or laptop, or other data processing apparatus. The card reader 110 can be detachably connected to the mobile computing device 102. The card reader 110 is a device that reads data from a card-shaped storage medium. In other words, the card reader 110 does not have a display or a keyboard, but the card reader 110 has an interface for inserting or swiping a card. For example, the system 100 can process the card according to the Europay, Mastercard, Visa (EMV) protocol.

As a general overview, a card can be inserted into the card reader 110 so that the reader engages electrical contacts for the microchip on the card. The card reader 110 sends a PIN request to the mobile device 102. In some implementations, the card reader 110 is attached to an audio jack or headset jack of the mobile device 102. In alternative implementations, the card reader 110 communicates with the mobile device 102 wirelessly, e.g., using Bluetooth technology or a WiFi hotspot. The mobile device 102 receives a PIN from the user, e.g., entered through a user interface of the mobile device 102, e.g., a touch-screen display, and sends the PIN to the card reader 110 for confirmation, e.g., over the audio jack of the mobile device 102. The card reader 110 can read, on the card, a chip that contains an embedded PIN. The card reader 110 compares the entered PIN to the embedded PIN. If the PINs match, the card reader 110 sends a confirmation to the mobile device 102, e.g., over the audio jack. The mobile device 102 can transmit an authorization for transaction to a secure server 114 for payment processing using an external network, e.g., the Internet 112. The secure server 114 can relay the transaction to the card issuer 116, which ultimately approves or denies the transaction. The card issuer 116 can communicate the approval or denial to the secure server 114, which can relay the card issuer's response to the mobile device 102. More transaction details will be discussed below in reference to FIG. 2.

The mobile device 102 includes a display 104 and a user interface controller 106. The user interface controller 106 can generate a user interface for PIN entry. The user interface can be a keypad interface or a keyboard interface. The mobile device 102 can display the generated interface on the display 104. For example, the generated interface can be a keypad interface with numbers 0-9. This is described further below in reference to FIG. 4.

FIG. 2 is a diagram of an example method (step 200) for conducting a transaction using PIN entry by batching commands from a mobile device to a card reader. Conducting a transaction using PIN entry requires three phases: 1) card authentication (step 204), 2) cardholder verification (step 206), and 3) transaction authorization (step 208). These three phases involve communication between a card, a card reader, a mobile device, and an issuing bank. The card chip can communicate with the card reader over electrical contacts in the card reader. The card reader can communicate with the mobile device over an audio jack of the mobile device or over a wireless connection. The mobile device can directly communicate with the issuing bank using an Internet, e.g., WiFi, or 3G/4G data connection. In some implementations, the mobile device communicates with a secure server, which in turn communicates with the issuer. The mobile device can use the secure server to store information related to the transaction, e.g., a transaction receipt.

Generally, the card authentication phase (step 204) commences when a card is inserted into the card reader. The card reader requests a list of supported applications (in this context the “applications” refer to types of financial transactions, e.g., credit, debit, or ATM) from the card chip. For example, this list of supported applications can be stored in the file 1PAY.SYS.DDF01, which is selected by the card reader. The card chip sends the list, e.g., the file contents, to the card reader. The card reader receives input selecting a type of application, and sends a message to the card chip selecting the application and starting the transaction. In some implementations, the card reader selects the supported application from the list. The message starting the transaction can serve as a “read record” command to read cardholder records from the card chip. These records can include card details, e.g., primary account number, start and expiry date, backwards compatibility data, e.g., a copy of a magnetic strip, and control parameters, e.g., a type of authentication method to be used, for example, signature, PIN, or none. In some implementations, the records include a digital signature, which can be later verified by an issuing bank.

In the cardholder verification phase (step 206), the card can prompt the card reader for a PIN. The card reader then prompts the mobile device for a PIN. After the mobile device receives a PIN from the user, the mobile device sends the PIN to the card reader. The card reader sends the PIN to the card, and if the PIN matches an embedded PIN on the card, the card returns a success or a failure. In some implementations, the card maintains a retry counter to limit the number of failed PIN entries. That is, the card can reject a PIN for processing if too many PINs have been entered.

In the transaction authorization phase (step 208), the card reader requests the card to generate an authorization request cryptogram (ARQC). The request can include or be followed by the transaction details. The transaction details can include transaction amount, currency type, date, terminal verification results (TVR), and/or a nonce generated by the card reader. In response, the card chip generates the ARQC, which includes a cryptographic message authentication code (MAC). The MAC can be generated based on the transaction details. The ARQC can also include an application transaction counter (ATC), which is a sequence counter identifying the transaction, issuer application data (IAD), which is a variable length field containing data generated by the card. In some implementations, the MAC is generated using a symmetric key shared between the card and the issuing bank.

If the card permits the transaction, the card sends the ARQC to the card reader, which sends the ARQC to the mobile device. The mobile device then sends the ARQC to the issuing bank. The issuing bank can perform various cryptographic, anti-fraud, and financial checks on the ARQC. If the checks are satisfied, the issuing bank sends an authorization response code (ARC) that indicates a transaction approval or denial and an authorization response cryptogram (ARPC). In some implementations, the ARPC is a MAC resulting from an XOR operation between the ARQC and the ARC. The card reader sends both the ARPC and the ARC to the card.

The card validates the MAC contained within the ARPC. If the validation is successful, the card can update its internal state to note that the issuing bank has authorized the transaction. The card can send a transaction certificate cryptogram (TC) to the card reader. The TC indicates that the card is authorizing the transaction to proceed. After receiving the TC, the card reader sends the TC to the mobile device, which sends the TC to the issuer. The card reader, the mobile phone, or, if applicable, the secure server can store a copy of the TC in case of a dispute.

The method (step 200) can minimize information, e.g., data, transferred between the mobile device and the card reader during the three phases to save battery on both devices. This can be accomplished by batching information exchanged between the card reader and the mobile device. In particular, the information needed by the card chip can be batched when delivered from the mobile device to the card reader (step 202). Thus, instead of requesting information from the mobile device in a piecemeal fashion, e.g., when the card chip requires data, the mobile device can be configured to send batched information to the card reader and the card reader can be configured to process batched information sent from the mobile device.

The mobile device can generate batched information and send the batched information before or during the first phase, that is, the card authentication phase (step 204). In some implementations, once the card is inserted into the card reader, the card reader notifies the mobile device. Upon receiving the notification, the mobile device sends the batched information to the card reader. In alternative implementations, the mobile device sends the batched information before the card is inserted into the card reader.

The batched information sent from the mobile device to the card reader can include the application type, e.g., credit, debit, or ATM, and transaction details, e.g., the amount, currency, date, identity of payee, or a nonce. The mobile device can obtain or, if applicable, generate this information once transaction details have been finalized. In some implementations, this information is obtained from preferences within an application of the mobile device. In some implementations, the batched information includes a PIN inputted from a user. For example, the mobile device can prompt a user for a PIN before the card or the card reader requests the PIN. Once the mobile device receives the PIN from the user, the mobile device can generate the batched information to include the PIN and then send the batched information to the card reader.

The card reader can store the batched information from the mobile device and provide information when the card requires it. For example, during card authentication (step 204), the card requests an application selection from the terminal. Because the card reader already has a selected application in mind, e.g., the selection was in the batched information, the card reader can send the selected application to the card without having to query the mobile device at that time. Similarly, during transaction authorization (step 208), the card reader can provide transaction details to the card chip that were previously included in the batch information. With batched information, the card reader does not need to communicate with the mobile device. Also, if the PIN is already in the batched information, during cardholder verification (step 206), the card reader sends the PIN to the card without prompting the user for PIN entry. In addition, the records that were provided to the card reader can be provided to the mobile device in the transaction authorization step, e.g., as part of batched information that includes the ARQC.

In some implementations, some parts of the batched information are rejected as invalid from the card. For example, a PIN in the batched information can be incorrect. In this case, the card reader communicates the rejection to the mobile device, and the mobile device provides updated information to be processed by the card, e.g., the mobile device prompts the user again for another PIN and sends the PIN to the card reader. For example, a PIN in the batched information can be incorrect. As another example, the desired application in the batched information from the mobile device to the card reader may not be a supported application in the list provided by the card chip to the card reader. In this case, the card reader communicates the list of supported applications to the mobile device, and the mobile device provides an updated selection of the application or requests cancellation of the transaction, either based on a default or from user input.

FIG. 3 is a schematic illustration of an example system 300 for providing security during PIN entry by limiting user feedback on the display of the mobile device. As described above in reference to FIG. 1, the mobile device 102 includes a display 104 and a user interface controller 106, and the mobile device 102 communicates with a card reader 110.

In addition, the user interface controller 106 can include a feedback controller 308. The user can interact with the generated interface of the user interface controller 106, e.g., a user can tap or drag a finger on the display. The feedback controller 308 processes the user feedback entered through the display. The feedback controller 308 detects user input and sends one or more events, e.g., user taps, to the user interface controller 106. The user interface controller 106 processes the one or more events, e.g., stores the value entered by the user, and determines whether to provide user feedback.

In a conventional keyboard or number pad user interface on the display of a mobile device, the user interface controller 106 can provide visual feedback on the display 104. For example, if a user taps a ‘5’ on the keypad interface, the feedback controller 308 can detect and send the tap to the user interface controller 106. The mobile device 102 can then highlight the cell ‘5’ on the keypad interface to provide feedback to the user that the ‘5’ was tapped. FIG. 4 is an example generated user interface 400 on a mobile device. The user interface displays a keypad 404 and a passcode field 402. The keypad 404 shows a cell of value ‘5’ being highlighted, e.g., because a user has tapped the ‘5’. Once the ‘5’ has been selected, a ‘*’ can be displayed on the passcode field 402.

Malware on the mobile device 102 can cause the mobile device 102 to take screenshots of the display 104. For example, malware can trigger the mobile device 102 to take a screenshot upon receiving an event at the feedback controller 308. Other triggers are possible, e.g., malware causes the mobile device to take screenshots randomly or continuously for a time interval. For example, if malware causes a screenshot to be taken during PIN entry of a user, and if a cell is highlighted based on the user input, the screenshot will show the keypad interface with a highlighted cell and the malware can deduce a value in the PIN.

In some implementations, the user interface controller 106 processes the user input, e.g., stores the entered value, but does not display user feedback, e.g., when a user taps ‘5’, the cell ‘5’ is not highlighted on the display. Because the mobile device 102 does not display a highlighted cell on user input, the malware will take a screenshot that will not have a cell highlighted. Consequently, the malware be unable to deduce the PIN value from the screenshot and no sensitive information will be lost or stolen. In some implementations, a ‘*’ is displayed for every individual user input while none of the cells are highlighted. Therefore, even if malware takes a screenshot during PIN entry, the screenshot can show the length of the PIN, but the screenshot will not compromise which value is entered. For example, the passcode field 402 displays three ‘*’, indicating three values have been selected. In some other implementations, a ‘*’ is not displayed and a cell is not highlighted upon user input, thereby not compromising any information about the passcode in the event of a screenshot.

In some implementations, feedback to the user that a key has been pressed can provided in audio form, e.g., through external speakers, or tactile form, e.g., through vibrators in the mobile device.

FIG. 5 is an example flow chart of a method 500 for providing security during passcode entry by limiting user feedback on the display of the mobile device. For convenience, the method 500 will be described with respect to a system, e.g., the system described in reference to FIG. 4. The system displays an interface for receiving a passcode (step 502). The system receives user input on a display (step 504), but the system does not display feedback to the user based on user input (step 506). In some implementations, if the interface is a keypad interface, and a user taps a cell, the cell is not highlighted. Based on the user input, the system determines the passcode, e.g., one or more PIN values (step 508). For example, the system can convert one or more user taps into respective coordinates on the display. Based on the tap coordinates and coordinates of a keypad interface, the system determines values of the passcode that is entered by the user. In some implementations, the system submits the passcode to the card reader (step 510), which authenticates the entered passcode by passing the passcode to the chip on the card and receiving verification from the chip that the passcode matches the embedded PIN values on the card.

FIG. 6 is a schematic illustration of an example system 600 for providing security during PIN entry by receiving a PIN on a randomized PIN entry interface while displaying a file encoded with digital rights management (DRM). The file can be a media file, e.g., an image or video. In some implementations, a mobile device 102 receives the file from a secure server 114 over an external network, e.g., the Internet 112, as will be described below in reference to FIG. 7. As described above in reference to FIG. 1, the mobile device 102 includes a display 104 and a user interface controller 106, and the mobile device 102 communicates with a card reader 110.

To play a file encoded with DRM, the file is decoded by a DRM module, e.g., either installed in software or in hardware at a DRM controller 608. The DRM module can prevent the mobile device 102 from taking screenshots while the DRM-encoded file is being displayed. The mobile device 102 can detect user input while the file is playing using a user interface controller 106, e.g., similar to the feedback controller in reference to FIG. 3.

FIG. 7 is a diagram of an example method 700 for providing security during PIN entry by receiving a PIN from a secure server. The secure server generates an interface for receiving a passcode and converts the interface into a media file (step 702). The media file can be encoded by DRM. Because the secure server generates the interface, the secure server can determine locations of input values in the interface. For example, the secure server can include a mapping of input values in the interface, e.g., a ‘1’ button, to coordinates on the interface. An example of a randomly generated interface is described further below in reference to FIG. 8. The secure server stores the interface, e.g., in a database. The secure server sends the media file to the mobile device (step 704).

The mobile device displays the DRM-encoded media file (step 706). As mentioned above, content of the media file includes an interface for receiving a passcode, e.g., a PIN. If the file is a DRM-encoded video of a PIN entry interface, e.g., a video version of the interface shown in reference to FIG. 8, the mobile device displays the file using the DRM controller (step 706). While the media file is being displayed, the system can receive user input on the display (step 708), e.g., a user interface controller processes the input. The mobile device determines locations of user inputs, e.g., user taps, as described above in reference to FIG. 1. Locations of user inputs can be represented as an x-coordinate and y-coordinate. The mobile device sends the locations of user inputs to the secure server (step 710). The x-coordinate and y-coordinate of the user inputs can be encrypted before being sent to the secure server.

The secure server determines a passcode from the locations of user inputs (step 712). The secure server obtains the stored interface corresponding to the media file that was originally sent to the mobile device. The secure server determines the passcode by comparing the locations of user inputs with locations of input values on the stored interface. Because the user input is not converted into actual values at the mobile device, and because although the mobile device displays the media file but does not store any correspondence between the locations of the user inputs and the associated values, e.g., the correspondence is stored only on the secure server, an intruder will be unable to obtain the passcode even if the intruder can, e.g., through malware on the mobile device, detect locations of user inputs on the display. After determining the passcode, the secure server sends the passcode to the mobile device (step 714), which sends the passcode to a card reader for processing (step 716). The passcode can be encrypted before transmission from the secure server.

FIG. 8 is an example generated user interface 800 on a mobile device. The user interface displays a keypad 804 and a passcode field 802. A typical keypad can display input values 1, 2, 3, 4, 5, 6, 7, 8, 9, and 0 in ascending order from left to right and top to bottom. Here, locations of input values of the keypad are randomly generated. More specifically, the order of input values, from left to right and top to bottom, is 8, 6, 2, 9, 4, 1, 5, 0, 7, and 3. Alternatively, instead of randomly assigning locations, the user interface can be selected from a number of predetermined user interfaces.

If a user taps a middle cell with value ‘4’, the mobile device can encrypt and send the location of the tap to the secure server. In some implementations, an input location is sent after each user input. In alternative implementations, user input locations are aggregated and sent after a user hits a ‘Go’ value.

The secure server can match the location of the tap, e.g., the x-coordinate and the y-coordinate, to locations of input values of the generated keypad. That is, the secure server can determine the value of the passcode is ‘4’ because the location of the user input is within a location of the ‘4’ in the generated keypad. In general, the secure server returns the passcode after all of the user input locations are received.

FIG. 9 is a schematic illustration of an example system 900 for securely communicating between a card reader 908 and a mobile device 902. The card reader includes cryptographic keys 904 and a unique identification (ID) 906. The cryptographic keys 904 can include a public key and a private key. The cryptographic keys 904 can also include a certificate signed by a trusted authority. The unique ID 906 is an identification that is unique to the card reader. The unique ID can be 32 bits or 64 bits in length. In some implementations, the unique ID 906 is embedded in firmware during manufacture of the card reader 908. The card reader 908 communicates with the mobile device 902, which can communicate with a secure server 914 over an external network, e.g., the Internet 912. The secure server 914 can provide a public key for secure communication between the mobile device 902 and the card reader 908, as will be described further below in reference to FIG. 10.

FIG. 10 is a diagram of an example method 1000 of establishing secure communications between a card reader and a mobile device using asymmetric encryption. The card reader sends a unique ID to the mobile device (step 1002). In some implementations, the card reader sends, to the mobile device, a certificate signed by a trusted authority. The mobile device can verify the certificate's signature. Alternatively, the mobile device can send the certificate to a secure server for verification.

In some implementations, the mobile device does not have a cryptographic key, e.g., a public key, corresponding to a cryptographic key on the card reader, e.g., a corresponding private key. Therefore, the mobile device can obtain the appropriate cryptographic key from the secure server.

The mobile device sends the unique ID to the secure server (step 1004), e.g., using a data connection such as 3G/4G or WiFi. The secure server receives the unique ID and obtains a public cryptographic key associated with the unique ID, e.g., from a database. The public key can expire after a certain amount of time. In some implementations, the secure server stops secure communication between the mobile device and card reader by allowing the public key to expire without reissuing another valid public key.

The secure server sends the public key to the mobile device (step 1006). The mobile device can then cache the public key for future communications with the card reader. The mobile device can encrypt data using the public key (step 1008). For example, using the public key, the mobile device can encrypt a request to the card reader to accept a card for a payment transaction. Alternatively, the mobile device can encrypt a PIN entered by the user using the public key.

The mobile device sends encrypted data to the card reader (step 1010). To process the data, the card reader uses a private cryptographic key to decrypt the encrypted data and performs operations based on the data (step 1012). For example, the card reader can decrypt a request to compare PIN values and perform a comparison using the decrypted data. The private key can be embedded in the card reader during manufacturing. In some implementations, the card reader only responds to requests that are encrypted by the public key.

The card reader can encrypt a response to the mobile device using the private key and send encrypted data to the mobile device (step 1014). For example, the response can be an acknowledgement that the card reader has verified a PIN match. The mobile device can decrypt the response using the mobile device's public key and perform operations based on the data, e.g., submit an authorization for transaction to a payment processing server. In this manner, the mobile device and card reader can continue to securely communicate using the mobile device's public key and the card reader's private key (step 1016).

In some implementations, when securely communicating using either asymmetric or symmetric encryption, the secure server and the mobile device each have a separate pair of cryptographic keys, e.g., separate pairs of public and private keys. The mobile device and secure server can add an additional layer of security by encrypting data, which can be already encrypted using the card reader's private key, using the appropriate public key. For example, the mobile device can encrypt the unique identification of the card reader before transmission to the server. The server can first decrypt the received data from the mobile device using the server's separate private key. The server can also encrypt data, e.g., the card reader's public key, that is sent to the mobile device using the mobile device's separate public key.

In some implementations, secure communication can be established without the secure server. Instead of sending the unique ID to the mobile device, the card reader sends a cryptographic key, e.g., the card reader's public key, to the mobile device. Generally, public keys are 2048 bits long, the size of which is significantly larger than the size of a unique ID. Therefore, the time and battery requirements for the card reader to send the public key to the mobile device are higher than the card reader's sending of the unique ID. However, once the mobile device receives the public key in its entirety, the mobile device can securely communicate with the card reader as described above.

FIG. 11 is a diagram of an example method 1100 of establishing secure communications between a card reader and a mobile device using symmetric encryption. The card reader encrypts a unique identification of the card reader using a cryptographic key, e.g., a shared key (step 1101). Similar to the method describe above using asymmetric encryption, the card reader sends the encrypted unique ID to the mobile device (step 1102). The unique ID can be 32 bits or 64 bits in length. In some implementations, the card reader sends, to the mobile device, a certificate signed by a trusted authority. The mobile device can verify the certificate's signature. Alternatively, the mobile device can send the certificate to a secure server for verification.

The mobile device generates data to be sent to the card reader (step 1103). For example, the data can be a passcode, e.g., a PIN corresponding to a credit card. For example, without the shared key, the mobile device cannot encrypt data to be sent to the card reader. In some implementations, the mobile device uses a separate pair of cryptographic keys, as described above, to securely communicate with a server. The mobile device can generate encrypted data using the mobile device's public key (step 1104). The encrypted data can include an encrypted version of the unique identification and an encrypted version of a request for the card reader to process, e.g., a request to process a PIN.

The mobile device sends encrypted data to the secure server 1104, e.g., using a data connection such as 3G/4G or WiFi. In some implementations, the secure server receives the encrypted data and decrypts the encrypted data using its separate private key. The decrypted data can include an unencrypted ID and an unencrypted request. With an unencrypted ID, the secure server can obtain a shared key associated with the unique ID, e.g., from a database. The secure server can generate a response that is encrypted with the request using the shared key (step 1106). The secure server sends the encrypted response to the mobile device (step 1108).

In turn, the mobile device sends the encrypted response to the card reader (step 1110). The mobile device does not receive the shared key and therefore minimizes a security breach. To process the data, the card reader uses the shared key, which can be embedded during manufacturing, to decrypt the encrypted response and performs operations based on the data (step 1112). For example, the card reader can decrypt a request to compare PIN values and perform a comparison using the decrypted data. In some implementations, the card reader only responds to requests that are encrypted by the shared key.

The card reader can encrypt more data to send to the mobile device using the shared key and send the encrypted data to the mobile device (step 1114). For example, the data can be an acknowledgement that the card reader has verified a PIN match. The mobile device sends the encrypted data to the secure server (step 1116). In some implementations, the mobile device encrypts the encrypted data a second time using the secure server's public key. Upon receipt of the encrypted data, the secure server decrypts the data using the secure server's private key and the card reader's shared key to obtain unencrypted data from the card reader. The secure server then encrypts the data using the mobile device's public key (step 1118). The secure server sends the encrypted data to the mobile device (step 1120), and the mobile device decrypts the data using its separate private key and processes the data. Secure communication can continue without the mobile device ever having the card reader's shared key.

Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a non-transitory computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

The operations described in this specification can be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language resource), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.

The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).

Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.

To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending resources to and receiving resources from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back-end, middleware, or front-end components.

The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.

A system of one or more computers can be configured to perform particular operations or actions by virtue of having software, firmware, hardware, or a combination of them installed on the system that in operation causes or cause the system to perform the actions. One or more computer programs can be configured to perform particular operations or actions by virtue of including instructions that, when executed by data processing apparatus, cause the apparatus to perform the actions.

While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.

Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, usage of wireless payment system may not be limited to a taxi environment but could also be applied to other environments, such as a restaurant. Moreover, usage of the techniques to establish secure communication may not be limited to mobile devices, but could also be applied to non-mobile or wired devices connected to a network. Although the swiping of a card through a reader is described above, other techniques for scanning a card, e.g., chip reading or near field communication, could be used to read data from the card. 

What is claimed is:
 1. A method for processing payment transactions between a card, a card reader and a mobile device, comprising: receiving batched information from the mobile device, where the batched information includes information required for a transaction, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; receiving, from the card, distinct requests for information from the batched information; and providing, to the card, the information based on the respective request, where the card generates the plurality of authentication codes based on the information.
 2. The method of claim 1, where the batched information includes transaction details and an application selection, where the transaction details include one or more of the following: transaction amount, currency type, date, nonce, or verification results.
 3. The method of claim 1, where the batched information includes a passcode from a user.
 4. The method of claim 1, where the batched information is sent when the card is inserted into the card reader.
 5. The method of claim 1, where the batched information is sent before the card is inserted into the card reader.
 6. The method of claim 1, further comprising: receiving the plurality of authentication codes from the card; transmitting the plurality of authentication codes to the mobile device, which sends the plurality of authentication codes to an issuing bank associated with the card; receiving a response from the issuing bank, where the response authorizes the plurality of authentication codes; and sending the response to the card.
 7. A system comprising: a processor; and computer-readable medium coupled to the processor and having instructions stored thereon, which, when executed by the processor, cause the processor to perform operations comprising: receiving batched information from the mobile device, where the batched information includes information required for a transaction, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; receiving, from the card, distinct requests for information from the batched information; and providing, to the card, the information based on the respective request, where the card generates the plurality of authentication codes based on the information.
 8. The system of claim 7, where the batched information includes transaction details and an application selection, where the transaction details include one or more of the following: transaction amount, currency type, date, nonce, or verification results.
 9. The system of claim 7, where the batched information includes a passcode from a user.
 10. The system of claim 7, where the batched information is sent when the card is inserted into the card reader.
 11. The system of claim 7, where the batched information is sent before the card is inserted into the card reader.
 12. The system of claim 7, further comprising: receiving the plurality of authentication codes from the card; transmitting the plurality of authentication codes to the mobile device, which sends the plurality of authentication codes to an issuing bank associated with the card; receiving a response from the issuing bank, where the response authorizes the plurality of authentication codes; and sending the response to the card.
 13. A computer-readable medium having instructions stored thereon, which, when executed by a processor, cause the processor to perform operations comprising: receiving batched information from the mobile device, where the batched information includes information required for a transaction, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; receiving, from the card, distinct requests for information from the batched information; and providing, to the card, the information based on the respective request, where the card generates the plurality of authentication codes based on the information.
 14. The computer-readable medium of claim 13, where the batched information includes transaction details and an application selection, where the transaction details include one or more of the following: transaction amount, currency type, date, nonce, or verification results.
 15. The computer-readable medium of claim 13, where the batched information includes a passcode from a user.
 16. The computer-readable medium of claim 13, where the batched information is sent when the card is inserted into the card reader.
 17. The computer-readable medium of claim 13, where the batched information is sent before the card is inserted into the card reader.
 18. The computer-readable medium of claim 13, further comprising: receiving the plurality of authentication codes from the card; transmitting the plurality of authentication codes to the mobile device, which sends the plurality of authentication codes to an issuing bank associated with the card; receiving a response from the issuing bank, where the response authorizes the plurality of authentication codes; and sending the response to the card. 